The rapid exhaustion of Internet Protocol version 4 (IPv4) address space, despite conservation techniques, has prompted the Internet Engineering Task Force (IETF) to explore new technologies to expand the Internet's addressing capability. The permanent solution was deemed to be a redesign of the Internet Protocol itself. This next generation of the Internet Protocol, aimed to replace IPv4 on the Internet, was eventually named Internet Protocol Version 6 (IPv6) in 1995, in which the address size was increased from 32 to 128 bits or 16 octets. Mathematically, the new address space provides the potential for a maximum of 2128, or about 3.403×1038 unique addresses. However, not all devices are IPv6 compliant and translation between IPv6 and IPv4, if at all possible, is fixed or static for various network devices. Examples of such devices that are still deployed on IPv4 platform are home networking routers, voice over Internet Protocol (VoIP) and multimedia equipment, and network peripherals. Although this list is not exhaustive in nature, other devices exist that operate on IPv4 only.
DNS64 is an exemplary mechanism for synthesizing ‘AAAA’ records (or, quad-A records) used in IPv6 from ‘A’ records used in IPv4. DNS64 is used with an IPv6/IPv4 translator to enable client-server communication between an IPv6-only client device and an IPv4-only server, without requiring any changes to either the IPv6 or the IPv4 node, for the class of applications that work through Network Address Translators (NATs). Conventional implementations of DNS64 map an IPv4 internet device into an IPv6 space using a well known static 96 bit IPv6 prefix. The composite IPv6 address, which includes the IPv4 address and the 96-bit prefix, is then later translated by a NAT device into the expected IPv4 address, whereby the connection is then routed across the IPv4 internet. This is done for all subsequent requests from an IPv6 client device to IPv4 servers. Unfortunately, the fixed IPv6 96-bit prefix is analogous to setting up static entries in Domain Name System (DNS) such that there can be only one NAT device (or set of NAT devices) that can be utilized to terminate the traffic. Thus, the IPv6 96-bit prefix is not a flexible or dynamic way to implement DNS64.
An alternative conventional solution is to use IPv6 ‘AnyCast’ in which datagrams from a single sender are routed to the topologically nearest node in a group of potential receivers having the same destination address. However, using IPv6 ‘AnyCast’ network addressing and routing methodology is problematic, because a failure of one device will cascade all traffic onto another device, thereby likely overloading it too. Further, IPv6 ‘AnyCast’ still has fixed addresses within the group of potential receivers. Unfortunately, the above conventional technologies are not intelligent or flexible in their performance of converting between IPv6 and IPv4 devices.
What is needed is a system and method which is intelligent and flexible in converting communications between IPv6 and IPv4 network devices.